<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        console.log('---------------------------------1--------------------------');
        // 1.封装一个函数，实现任意个数字求平均数
        function avg(){
            let sum = 0;
            for(let i = 0 ; i < arguments.length ; i++){
                sum += arguments[i];
            }
            return  sum/arguments.length;
        }
        console.log(avg(0,2,4));
        console.log(avg(1,2,3,4,5));
        console.log('---------------------------------2--------------------------');
        // 2.封装一个函数，实现 传入三个数字，返回一个从小到大排列的数组
        function arr(a,b,c){
            let arr1 = [a,b,c];
            arr1.sort(function(a,b){
                return a-b;
            })
            return arr1;
        };
        console.log(arr(9,5,6));
        console.log(arr(0,3,1));
        console.log('---------------------------------3--------------------------');
        // 3.写一段js代码,实现交换两个变量的值（注意：两个变量的值均为数字）-[不用封装函数]
        function exchange(a,b){
            a = a + b;
            b = a - b;
            a = a - b;
            console.log(a,b);
        };
        exchange(4,6);
        exchange(1,0);
        console.log('---------------------------------4--------------------------');
        //4.封装一个函数，实现加密数据的密码本函数
        // > 某个公司采用公用电话传递数据，数据是四位的整数，在传递过程中是加密的。
        // > 加密规则如下： 
        // > 5566===》  6565A
        // > 6655===》 6655B
        // >如果第一位数字是奇数，则第一位和第四位互换位置,请在最后面添加 ‘A’，如果没换位置 添加 ‘B’
        function encrypt(a,b,c,d){
            if(a%2==1){
                let str = `${d}${b}${c}${a}A`;
                return str;
            }else{
                let str = `${a}${b}${c}${d}B`;
                return str;
            }
        }
        console.log(encrypt(1,2,3,4));
        console.log(encrypt(2,1,3,4));
        console.log(encrypt(5,5,6,6));
        console.log(encrypt(6,6,5,5));
        document.write(encrypt(6,6,5,5));
        console.log('---------------------------------5--------------------------');
        // 5.封装一个函数，实现第四题加密数据密码本的 逆向解码函数
        // > 6565A ===》5566
        // > 6655B ===》 6655
        function decode(a,b,c,d,e){
            if(e == 'A'){
                let str = `${d}${b}${c}${a}`;
                return str;
            }else{
                let str = `${a}${b}${c}${d}`;
                return str;
            };
        }
        console.log(decode(4,2,3,1,'A'));  
        console.log(decode(2,1,3,4,'B')); 
        console.log(decode( 6,5,6,5,'A'));
        console.log(decode(6,6,5,5,'B'));
        console.log('---------------------------------6--------------------------');
        // 6.封装一个函数，实现 获取6位随机字符串（纯字母字符串）
        function str(){
            let str = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
            let arr = [];
            for(let i =0;i<6;i++){
                arr.push(str[Math.floor( Math.random()*51)])
            }
            return arr;
        }
        console.log(str());
        document.write(str());
        console.log('---------------------------------7--------------------------');
        // 7.封装一个函数，传入一个 大于100的正整数，求出从0到该数之间所有能够被3整除的数字之和
        function sum(a){
            if(a>100){
                let sum = 0;
                for(let i=0; i<=a;i++){
                    if(i%3==0){
                        sum += i;
                    }
                }
                return sum;
            }
        }
        console.log(sum(101));
        console.log('---------------------------------8--------------------------');
        // 8.封装一个函数，实现输入 圆的半径，求出该圆的面积     面积=Math.PI*r*r
        // function area(){
        //     let r = prompt('请输入圆的半径','');
        //     let area = Math.PI*r*r;
        //     return area;
        // }
        // console.log(area());
        console.log('---------------------------------9--------------------------');
        // 9.封装一个函数，传入一个人名，1秒之后返回 “xxx同学真可爱”
        function names(a,callback){
            setTimeout(function(){
                callback(a+'同学真好看');
            },1000)
        }
        names('李臣荣',function(res){
            console.log(res);
        })
        console.log('---------------------------------10--------------------------');
        // 10.封装一个函数，传入一个格林威治时间，返回一个北京标准时间格式：2021-11-01 05:01:01    
        function time(time){
            let now = new Date(time);
            let y = now.getFullYear();
            let m = now.getMonth()+1;
            let d = now.getDate();
            let h = now.getHours();
            let min = now.getMinutes();
            let s = now.getSeconds();
            let str = `${y}-${m<10?'0'+m:m}-${d<10?'0'+d:d} ${h<10?'0'+h:h}:${min<10?'0'+min:min}:${s<10?'0'+s:s}`;
            return str;
        }
        console.log(time('Wed Apr 27 2022 23:47:55 GMT+0800 (中国标准时间)'));
    </script>
</body>
</html>